package myjava.innerclassi;

public class Root6 {

    public static void main(String[] args) {

       Foo o = new Foo();
       o.useFaa();
    }
}


class Foo {

   /* INTERESSANTE!
      tutto quello che e' in una innerclass e visibile dalla outer (private stuff as well!)
      il che ha senso se ci pensi dato che le due classi sono strettamente legate e non
      c'e' motivo di volere proteggere i dati dato che e' lo stesso autore della outer a usare le
      istanze della inner .. sapra' come usarle ah! o vuoi che corrompa lo stato apposta?!

    */   
   public void useFaa() {
      Faa o = new Faa();
      o.doIt();
      System.out.println(o.str);
   }

   class Faa {

      private String str = "ama  private thing in Faa";

      private void doIt() {
         System.out.println("doIt in Faa");
      }
   }
}